package eventos.abrir;

import java.awt.event.MouseEvent;

import javax.swing.JOptionPane;

import logica.Atributo;
import vista.paneles.ElementoNoExistenteException;
import vista.ventanas.SubVentanaConPanelAtributos;
import vista.ventanas.VentanaAtributo;
import controlador.IControladorAtributo;
import eventos.EventoCancelarEdición;
import eventos.aceptar.EventoAceptarAtributoEditado;

public class EventoEditarAtributo extends EventoAbrirVentanaAtributo{

	public EventoEditarAtributo(SubVentanaConPanelAtributos ventanaPadre, IControladorAtributo controlador) 
	{
		super(ventanaPadre, controlador);
	}
	
	public void mouseClicked(MouseEvent e)
	{
		Atributo atributoAEditar = this.getVentanaPadre().getAtributoSeleccionado();
		
		if (atributoAEditar == null)
			return;
		
		VentanaAtributo ventana;
		try 
		{
			ventana = new VentanaAtributo(this.getVentanaPadre(), this.getControlador().getTipoDeAtributos(), atributoAEditar);
			
			super.getControlador().setGraficableEditando(atributoAEditar.getMementoGenerico());

			EventoAceptarAtributoEditado eventoAceptar = new EventoAceptarAtributoEditado(this.getVentanaPadre(), ventana);
			ventana.escucharEventosBotonAceptar(eventoAceptar);
			
			EventoCancelarEdición eventoCancelar = new EventoCancelarEdición();
			ventana.escucharEventosBotonCancelar(eventoCancelar);
			
			this.agregarEventos(ventana);

			ventana.setVisible(true);
		}
		catch (ElementoNoExistenteException e1)
		{
			JOptionPane.showMessageDialog(this.getVentanaPadre(), e1.getMessage(), "Tipo Atributo no existente", JOptionPane.ERROR_MESSAGE);
		}

	}

}
